package com.android.lmy.LitePalDemo;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import com.android.lmy.App;
import com.android.lmy.GreenDaoDemo.BookBean;
import com.android.lmy.R;

import org.litepal.LitePal;
import org.litepal.crud.LitePalSupport;

import java.util.List;

public class LitePalActivity extends AppCompatActivity implements View.OnClickListener {
    private Button button2;
    private Button button3;
    private Button button4;
    private Button button5;
    private TextView showtext;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_lite_pal);
        button2 = findViewById(R.id.button2);
        button3 = findViewById(R.id.button3);
        button4 = findViewById(R.id.button4);
        button5 = findViewById(R.id.button5);
        showtext = findViewById(R.id.showtext);
        button2.setOnClickListener(this);
        button3.setOnClickListener(this);
        button4.setOnClickListener(this);
        button5.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.button2:
                Movie movie = new Movie("蜘蛛侠", "19:29", "001A");
                if (movie.save()) {
                    Toast.makeText(this, "插入成功", Toast.LENGTH_SHORT).show();
                } else {
                    Toast.makeText(this, "插入失败", Toast.LENGTH_SHORT).show();
                }

//                LitePal.saveAll(commentList)//可以存储集合数据效率比遍历逐个添加要高一些
                break;
            case R.id.button3:
//                删除全部
//                LitePal.deleteAll(Movie.class);
//                删除id为1的数据 注意这里的id是litepal自动生成的 自动增加 前提是实体类中设置了id字段且为int或者long

//                LitePal.deleteAll(Movie.class, "price > ?" , "100");//删除price字段>100的数据
                if (LitePal.delete(Movie.class, 30) == 1) {
                    Toast.makeText(this, "删除成功", Toast.LENGTH_SHORT).show();
                } else {
                    Toast.makeText(this, "删除失败", Toast.LENGTH_SHORT).show();
                }
                break;
            case R.id.button4:
                /**
                 * 通过先查找指定的对象 重新存储来修改数据
                 */
//                Movie movie1 = LitePal.find(Movie.class, 23);
//                movie1.setName("修改字段名字"); // raise the price
//                if (movie1.save()) {
//                    Toast.makeText(this, "修改成功", Toast.LENGTH_SHORT).show();
//                } else {
//                    Toast.makeText(this, "修改失败", Toast.LENGTH_SHORT).show();
//                }

                /**
                 * 通过update的方式来修改表中的数据
                 */
                Movie movie2 = new Movie();
                movie2.setName("updata方式修改"); // raise the price
//                movie2.updateAll();//更新全部
//                movie2.updateAll("name = ?", "album");//更新指定的字段的值
                //根据id更新
                if (movie2.update(30) == 1) {
                    Toast.makeText(this, "修改成功", Toast.LENGTH_SHORT).show();
                } else {
                    Toast.makeText(this, "修改失败", Toast.LENGTH_SHORT).show();
                }
                break;
            case R.id.button5:
                List<Movie> allMovies = LitePal.findAll(Movie.class);//查询所有
                Log.e("TTT", allMovies.toString());
                List<Movie> songs = LitePal.where("id like ? ", "%1").order("id desc")
                        .find(Movie.class);//模糊查询 .order("id desc")指定排序字段以及正倒序
                Log.e("TTT", songs.toString());
//                Log.e("TTT", LitePal.find(Movie.class, 30).toString());//查询指定id的数据
                break;
        }
    }
}


//   app build添加： implementation 'org.litepal.android:java:3.0.0'
//新建  assets 文件夹新建  litepal.xml  文件


//    Application初始化    LitePal.initialize(this);

//实体类需要继承 LitePalSupport


//注意litepal的实体类中id字段只能是int 或者long
